package Classic150;

public class 加一 {
    public int[] plusOne(int[] digits) {
        /*
            完美利用性质
         */
        for (int i = digits.length - 1; i >= 0; i--) {
            if (digits[i] == 9) {
                digits[i] = 0;
            } else {
                digits[i] += 1;
                return digits;
            }
        }
        digits= new int[digits.length + 1];
        digits[0] = 1;
        return digits;

        /*
            朴素模拟
         */
        /*digits[digits.length - 1] += 1;
        for (int i = digits.length - 1; i > 0; i--) {
            int num = digits[i];
            digits[i - 1] += num / 10;
            digits[i] = num % 10;
        }
        if (digits[0] == 10) {
            int[] res = new int[digits.length + 1];
            res[0] = 1;
            return res;
        } else return digits;*/
    }
}
